package com.indusfo.spc.mapper;

import com.indusfo.spc.pojo.Productline;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: louk
 * @Description:产线信息Mapper
 * @date: 2019/11/14 16:48
 *
 */
public interface ProductlineMapper {
    /**
     * 查询单个产线
     * @author xuz
     * @date 2018/11/30 2:16 PM
     * @param productlineId
     * @return java.util.List<com.indusfo.spc.pojo.ProductLine>
     */
    List<Productline> queryByProductLineId(@Param("productlineId") Integer productlineId);

    /**
     * 查询多个产线
     *
     * @author xuz
     * @date 2018/11/30 2:16 PM
     * @param productLine
     * @return java.util.List<com.indusfo.spc.pojo.ProductLine>
     */
    List<Productline> queryProductLineList(Productline productLine);


    /**
     * 根据产线名称查询产线id
     * @param vcProductionLineName
     * @return
     */
    Integer queryProductLineIdByProductLineName(@Param("productlineName") String vcProductionLineName);

    /**
     * 删除产线
     *
     * @author xuz
     * @date 2018/12/1 9:40 AM
     * @param lProductLineIds
     * @param lDataState
     * @return int
     */
    int delteProductLine(@Param("productLineIds") Long[] lProductLineIds, @Param("dataState") Integer lDataState);

    /**
     * 查询分页总数
     *
     * @author xuz
     * @date 2018/12/3 3:17 PM
     * @param productLine
     * @return int
     */
    int countProductLine(Productline productLine);


    /**
     * 通过产线编码和产线id获取信息
     * @param productlineCode
     * @param productlineId
     * @return
     */
    Integer queryByProductLineCode(@Param("productlineCode") String productlineCode, @Param("productlineId") Integer productlineId);

    /**
     * 通过车间id来获取产线信息
     * @param workshopId
     * @return
     */
    List<Productline> queryByWorkshopId(@Param("workshopId") Integer workshopId);

    /**
     * 通过产线信息判断该产线下工位的个数
     * @param productLine
     * @return
     */
    int countStationByProductionLine(Productline productLine);

    /**
     * 更新产线信息
     * @param productLine
     * @return
     */
    int updateByPrimaryKeySelective(Productline productLine);

    /**
     *
     * 根据车间id查询产线信息
     *
     *
     * @param workshopIds
     * @return
     */
    Integer countByWorkShopId(@Param("workshopIds") Integer[] workshopIds);

    /**
     * 通过车间ID启用停用产线
     * @param workshopIds
     * @param dataState
     * @return
     */
    int  deleteProDuctLineByWorkShopId(@Param("workshopIds") Integer[] workshopIds, @Param("dataState") Integer dataState);

    /**
     * 新增产线信息
     * @param productLine
     * @return
     */
    int insertSelective(Productline productLine);

    /**
     * 产线编码判重
     * @param productline
     * @return
     */
    int checkNoRepeatName(Productline productline);
}